//
//  YXDateHelpObject.h
//  LaiApp_OC
//
//  Created by Jonas on 16/11/15.
//  Copyright © 2016年 Softtek. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface YXDateHelpObject : NSObject

+ (YXDateHelpObject *)manager;

/**
 * 时间返回字符串
 */
- (NSString *)getStrFromDateFormat:(NSString *)format Date:(NSDate *)date;

/**
 * 获取上个月的时间
 */
- (NSDate*)getPreviousMonth:(NSDate*)_date;

/**
 * 获取下一个月的时间
 */
- (NSDate*)getNextMonth:(NSDate*)_date;

/**
 * 获取本月第一天是星期几
 */
- (NSInteger)currentFirstDay:(NSDate *)date;

/**
 * 获取本月总天数
 */
- (NSInteger)currentMonthOfDay:(NSDate *)date;

/**
 * 判断两个月份是不是一样的
 */
- (BOOL)checkSameMonth:(NSDate*)_month1 AnotherMonth:(NSDate*)_month2;

/**
 * 获取一个月有多少行
 */
- (NSInteger)getRows:(NSDate *)myDate;

/**
 * 字符串返回时间
 */
- (NSDate *)getDataFromStrFormat:(NSString *)format String:(NSString *)str;

/**
 * 判断两天是不是同一天 //固定yyyy-mm-dd
 */
- (BOOL)checkSameDate:(NSString *)date1 AnotherDate:(NSDate *)date2;

/**
 * 判断两天是不是同一天
 */
- (BOOL)isSameDate:(NSDate *)date1 AnotherDate:(NSDate *)date2;

/**
 * 获取某天零点时间
 */
- (NSDate *)getStartDateWithDate:(NSDate *)date;

/**
 将时间字符串转换成新的时间字符串
 
 @param oldStrDate 旧的时间
 @param oldFormat 旧的格式
 @param newFormat 新的时间格式
 @return 返回
 */
- (NSString *)getStrDateFromStrDate:(NSString *)oldStrDate OldFormat:(NSString *)oldFormat ByNewFormat:(NSString *)newFormat;


/**
 获取某个时间前后时间

 @param currentDate 当前时间
 @param lead 距离时间 正数往后推  负数往前推
 @param timeType 时间类型(0-年  1-月 2-日 3-时 4-分 5-秒)
 @return 返回结果时间
 */
- (NSDate *)getEarlyOrLaterDate:(NSDate *)currentDate LeadTime:(NSInteger)lead Type:(NSInteger)timeType;

- (NSString *)getWeekTimeType:(NSInteger)type selDate:(NSDate *)selDate;

//获取一周时间 数组
- (NSMutableArray *)getCurrentWeeksWithFirstDiff:(NSInteger)first lastDiff:(NSInteger)last;

//取出下个月的最后一天
+ (NSString *)getMonthBeginAndEndWith:(NSString *)dateStr;

//获取三天前的时间---
- (NSDate *)getThreeDayAgoTime:(NSDate *)nowDate;

//获取最近index天时间数组
-(NSMutableArray *)latelyTime:(NSInteger) index;//------

//获取最近index天时间数组---年月日的------------
-(NSMutableArray *)latelyTimeYearMonthDay:(NSInteger) index;

/**
 2  * @method
 3  *
 4  * @brief 获取两个日期之间的天数
 5  * @param fromDate       起始日期
 6  * @param toDate         终止日期
 7  * @return    总天数
 8  */
+ (NSInteger)numberOfDaysWithFromDate:(NSDate *)fromDate toDate:(NSDate *)toDate;

/**
 * 判断两天是不是同一月
 */
- (BOOL)isSameMonth:(NSDate *)date1 AnotherDate:(NSDate *)date2;
//
- (NSString *)getCurentWeek;

//获取某天是周几
-(NSString *)getBaseWeekly:(NSDate *)dayDate;

//获取datepicker上的信息得到年月日
- (NSString *)getDatePickerMessge:(NSDate *)dateMessge;
//获取最近index天时间数组---日  周------------
-(NSMutableArray *)latelySevenDateDay:(NSInteger) index;
//获取最近index天时间数组周------------
-(NSMutableArray *)latelySevenWeakDay:(NSInteger) index;
/**
 *  比较时间点的大小
 */
+ (int)compareDate:(NSString*)date01 withDate:(NSString*)date02;

/**
 * 判断月数-------
 */
- (NSInteger)currentMonth:(NSDate *)date;
//得到年月日
- (NSString *)getCurentTime:(NSString *)dateFormateSet dateN:(NSDate *)dateN;

//接机时候获取最近index天时间数组
-(NSMutableArray *)receptPlaneFourDate:(NSInteger)index ;

//接机时候获取最近index天时间数组年月日-----------------------
-(NSMutableArray *)receptPlaneFourYearMonthDate:(NSInteger)index;
@end
